1. Field of Invention
The invention relates to the load balancing of traffic in an IP based Storage Area Network (SAN). More particularly, the present invention relates to dynamic assignment of IP addresses to storage end points according to network traffic.
2. Description of the Related Art
The Small Computer Systems Interface (“SCSI”) is a popular family of protocols for communicating with I/O devices, in particular storage devices. More to the point, SCSI is the basic protocol for I/O operations between computers and storage subsystems. The SCSI protocol is, in essence, a point-to-point protocol.
Another popular protocol is the Transmission Control Protocol/Internet Protocol (“TCP/IP”). TCP/IP is the basic set of communication protocols for general data exchange between computers connected on a communication network. This is a common protocol used to communicate via the Internet.
Currently there is a convergence between the two protocols, that is, SCSI and TCP/IP. In particular, computers that communicate with their subsystems via SCSI are now tending to be interconnected via the Internet and utilizing TCP/IP to communicate with each other.
In view of this convergence, a standard (ietf draft) has been proposed for implementing SCSI over TCP. The currently proposed standard “draft-ietf-ips-iSCSI-13.txt” is available at http://www.ietf.org/internet-rafts/draft-ietf-ips-iscsi-13.txt (Satran. et. al IPS Internet Draft-ietf-ips-iscsi-15.txt [online], [retrieved on Sep. 5, 2002]. Retrieved from the Internet<URL:http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-15.txt>(herein expressly incorporated by reference).
In view of this convergence, a standard (ietf draft) has been proposed for implementing SCSI over TCP.
The ietf draft aims to be fully compliant with the requirements laid out in the SCSI Architecture Model-2 Document (Project Leader Charles Monia, Technical Editor John P. Scheible Working Draft. This SCSI standard provides for transmitting SCSI commands between SCSI devices, over TCP/IP connections. Conventionally, SCSI devices that communicate with each other must be connected via the same SCSI bus. The proposed ietf draft permits SCSI devices, which are not connected via the same SCSI bus to communicate with each other via the Internet, utilizing the TCP/IP protocol. According to the ietf draft, SCSI devices that are separated from one another even by great distances may communicate with each other. The ietf draft seeks to describe an implementation of SCSI that operates on top of TCP as the transport protocol.
The following briefly defines some SCSI conceptual terms. The end point of a typical SCSI command is a “logical unit” (LUN). Logical units include, for example, hard drives, tape drives, CD and DVD drives, printers and processors. A collection of logical units is referred to as a “target” and is directly addressable on the network. In a client-server model, the target corresponds to the server. An “initiator” creates and sends SCSI commands to the target. In the client-server model, the initiator corresponds to the client.
A typical SCSI command results in a command phase, data phase and a response phase. In the data phase, information travels either from the initiator to the target (for example, a WRITE command), or from the target to the initiator (for example, a READ command). In the response phase, the target returns the final status of the operation, including any errors. A response signal, is the end of a typical SCSI command.
The ietf draft defines a method of encapsulating those SCSI commands, SCSI Data and SCSI Responses over TCP/IP. It also defines methods to ensure the reliability of the transfer from the initiator to the target. This includes commands' numbering, commands' tagging and acknowledgment. Also it provides means of securing data and authenticating initiators and targets to each other.
A storage gateway is a device that connects IP networks and Storage Networks (e.g., parallel SCSI or Fibre Channel). On one side it connects to initiators via an IP network and on the other side it connects to targets comprising storage devices via for example, the storage bus. It receives encapsulated SCSI Commands and/or data from the initiators, decapsulates them and transfers the raw SCSI command/data to the storage device. After completion of the command, it sends back to the initiator a status signal and/or data over the IP network.
A storage gateway can include more features than simple connectivity. Those can include Virtualization, disk concatenation, striping, mirroring and so on. The exposed LUNs can be any function of the physical LUNs. The present invention is independent of those features.